#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>  // 系统错误码

// 具体数据的结构体
typedef struct
{
    int age;
    char *name;
    float score;
}student;

// 链表节点
typedef struct node
{
    student data;
    struct node *next;
}listnode, *linklist;

// API
linklist init_list(void); // 初始化一个带头结点的空链表
void list_add(linklist head, linklist new); // 尾插法新增节点

// 你来完善以下接口
linklist new_node(const student *someone);// 产生新节点
void list_add_tail(linklist head, linklist new); // 头插法新增节点
void list_for_each(linklist head);
void destroy(linklist head);   // 释放链表资源，复初始化状态

// 
// void list_del(linklist head, linklist p); // 将p指向的节点剔除出链表
// linklist find(student someone);   /